
namespace Cfg
{
	typedef Json::Value CfgValue;
}

class SMPPAPI Configload
{
#ifdef SMPPLIBRARY_EXPORT
	static BOOL init;
	static Json::Value Root;
	static std::string jsonname;
	static BOOL StringInstead(const std::string& index, const std::string& str, std::string& out);


public:
	static BOOL Init(const std::string jsonnameee);

	static void Release();
#endif
public:
	static const Cfg::CfgValue GetModuleCfg(const std::string& ModuleName, const std::string& cfgname);

	static const BYTE GetModuleHotKey(const std::string& ModuleName);

	static const BOOL GetModuleIsOn(const std::string& ModuleName);

	static const std::string GetModuleDescription(const std::string& ModuleName);

	static const BYTE GetModuleCfgBYTEColour(const std::string& ModuleName, const std::string& cfgname);

	static BOOL GetModuleMapValues(std::string ModuleName, std::string ArrayName, std::vector<Cfg::CfgValue>& vecvalue, size_t maxelement, const std::string& InsteadName = "Unit TN Instead List");

	static BOOL GetModuleMapByteColor(std::string ModuleName, std::string ArrayName, std::vector<BYTE>& vecvalue, size_t maxelement, const std::string& InsteadName = "Unit TN Instead List");

	static BOOL GetModuleMapValues(Cfg::CfgValue& root, std::vector<Cfg::CfgValue>& vecvalue, size_t maxelement, const std::string& InsteadName);

	static BOOL GetItemValues(std::string ModuleName, std::string ArrayName, std::array<std::array<std::array<BYTE, 4>, 10>, 6000> & vecvalue);
};